{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# CIFAR10 Classifier\n",
    "\n",
    "This notebook prepares an CIFAR10 classifier using a Convolutional Neural Network (CNN)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "# import required libs\n",
    "import keras\n",
    "import numpy as np\n",
    "from keras import backend as K\n",
    "from keras.datasets import cifar10\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense, Dropout, Flatten\n",
    "from keras.layers import Conv2D, MaxPooling2D\n",
    "from keras.applications.vgg16 import preprocess_input, decode_predictions\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "params = {'legend.fontsize': 'x-large',\n",
    "          'figure.figsize': (15, 5),\n",
    "         'axes.labelsize': 'x-large',\n",
    "         'axes.titlesize':'x-large',\n",
    "         'xtick.labelsize':'x-large',\n",
    "         'ytick.labelsize':'x-large'}\n",
    "\n",
    "plt.rcParams.update(params)\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Set Parameters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "batch_size = 128\n",
    "num_classes = 10\n",
    "epochs = 10\n",
    "input_shape = (32, 32, 3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get CIFAR Dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# the data, shuffled and split between train and test sets\n",
    "(x_train, y_train), (x_test, y_test) = cifar10.load_data()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dataset Details"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x_train shape: (50000, 32, 32, 3)\n",
      "50000 train samples\n",
      "10000 test samples\n"
     ]
    }
   ],
   "source": [
    "print('x_train shape:', x_train.shape)\n",
    "print(x_train.shape[0], 'train samples')\n",
    "print(x_test.shape[0], 'test samples')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# convert class vectors to binary class matrices\n",
    "y_train = keras.utils.to_categorical(y_train, num_classes)\n",
    "y_test = keras.utils.to_categorical(y_test, num_classes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Build a CNN based deep neural network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model = Sequential()\n",
    "model.add(Conv2D(32, kernel_size=(3, 3),\n",
    "                 activation='relu',\n",
    "                 input_shape=input_shape))\n",
    "model.add(Conv2D(64, (3, 3), activation='relu'))\n",
    "model.add(MaxPooling2D(pool_size=(2, 2)))\n",
    "model.add(Dropout(0.25))\n",
    "model.add(Flatten())\n",
    "model.add(Dense(128, activation='relu'))\n",
    "model.add(Dropout(0.5))\n",
    "model.add(Dense(num_classes, activation='softmax'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Visualize the network architecture"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg height=\"719pt\" viewBox=\"0.00 0.00 392.00 719.00\" width=\"392pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 715)\">\n",
       "<title>G</title>\n",
       "<polygon fill=\"white\" points=\"-4,4 -4,-715 388,-715 388,4 -4,4\" stroke=\"none\"/>\n",
       "<!-- 2198211352448 -->\n",
       "<g class=\"node\" id=\"node1\"><title>2198211352448</title>\n",
       "<polygon fill=\"none\" points=\"20,-664.5 20,-710.5 364,-710.5 364,-664.5 20,-664.5\" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"108\" y=\"-683.8\">conv2d_1_input: InputLayer</text>\n",
       "<polyline fill=\"none\" points=\"196,-664.5 196,-710.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"224\" y=\"-695.3\">input:</text>\n",
       "<polyline fill=\"none\" points=\"196,-687.5 252,-687.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"224\" y=\"-672.3\">output:</text>\n",
       "<polyline fill=\"none\" points=\"252,-664.5 252,-710.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"308\" y=\"-695.3\">(None, 32, 32, 3)</text>\n",
       "<polyline fill=\"none\" points=\"252,-687.5 364,-687.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"308\" y=\"-672.3\">(None, 32, 32, 3)</text>\n",
       "</g>\n",
       "<!-- 2198211352112 -->\n",
       "<g class=\"node\" id=\"node2\"><title>2198211352112</title>\n",
       "<polygon fill=\"none\" points=\"41,-581.5 41,-627.5 343,-627.5 343,-581.5 41,-581.5\" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"104.5\" y=\"-600.8\">conv2d_1: Conv2D</text>\n",
       "<polyline fill=\"none\" points=\"168,-581.5 168,-627.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"196\" y=\"-612.3\">input:</text>\n",
       "<polyline fill=\"none\" points=\"168,-604.5 224,-604.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"196\" y=\"-589.3\">output:</text>\n",
       "<polyline fill=\"none\" points=\"224,-581.5 224,-627.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"283.5\" y=\"-612.3\">(None, 32, 32, 3)</text>\n",
       "<polyline fill=\"none\" points=\"224,-604.5 343,-604.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"283.5\" y=\"-589.3\">(None, 30, 30, 32)</text>\n",
       "</g>\n",
       "<!-- 2198211352448&#45;&gt;2198211352112 -->\n",
       "<g class=\"edge\" id=\"edge1\"><title>2198211352448-&gt;2198211352112</title>\n",
       "<path d=\"M192,-664.366C192,-656.152 192,-646.658 192,-637.725\" fill=\"none\" stroke=\"black\"/>\n",
       "<polygon fill=\"black\" points=\"195.5,-637.607 192,-627.607 188.5,-637.607 195.5,-637.607\" stroke=\"black\"/>\n",
       "</g>\n",
       "<!-- 2198369208416 -->\n",
       "<g class=\"node\" id=\"node3\"><title>2198369208416</title>\n",
       "<polygon fill=\"none\" points=\"41,-498.5 41,-544.5 343,-544.5 343,-498.5 41,-498.5\" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"104.5\" y=\"-517.8\">conv2d_2: Conv2D</text>\n",
       "<polyline fill=\"none\" points=\"168,-498.5 168,-544.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"196\" y=\"-529.3\">input:</text>\n",
       "<polyline fill=\"none\" points=\"168,-521.5 224,-521.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"196\" y=\"-506.3\">output:</text>\n",
       "<polyline fill=\"none\" points=\"224,-498.5 224,-544.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"283.5\" y=\"-529.3\">(None, 30, 30, 32)</text>\n",
       "<polyline fill=\"none\" points=\"224,-521.5 343,-521.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"283.5\" y=\"-506.3\">(None, 28, 28, 64)</text>\n",
       "</g>\n",
       "<!-- 2198211352112&#45;&gt;2198369208416 -->\n",
       "<g class=\"edge\" id=\"edge2\"><title>2198211352112-&gt;2198369208416</title>\n",
       "<path d=\"M192,-581.366C192,-573.152 192,-563.658 192,-554.725\" fill=\"none\" stroke=\"black\"/>\n",
       "<polygon fill=\"black\" points=\"195.5,-554.607 192,-544.607 188.5,-554.607 195.5,-554.607\" stroke=\"black\"/>\n",
       "</g>\n",
       "<!-- 2198369208752 -->\n",
       "<g class=\"node\" id=\"node4\"><title>2198369208752</title>\n",
       "<polygon fill=\"none\" points=\"0,-415.5 0,-461.5 384,-461.5 384,-415.5 0,-415.5\" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"104.5\" y=\"-434.8\">max_pooling2d_1: MaxPooling2D</text>\n",
       "<polyline fill=\"none\" points=\"209,-415.5 209,-461.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"237\" y=\"-446.3\">input:</text>\n",
       "<polyline fill=\"none\" points=\"209,-438.5 265,-438.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"237\" y=\"-423.3\">output:</text>\n",
       "<polyline fill=\"none\" points=\"265,-415.5 265,-461.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"324.5\" y=\"-446.3\">(None, 28, 28, 64)</text>\n",
       "<polyline fill=\"none\" points=\"265,-438.5 384,-438.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"324.5\" y=\"-423.3\">(None, 14, 14, 64)</text>\n",
       "</g>\n",
       "<!-- 2198369208416&#45;&gt;2198369208752 -->\n",
       "<g class=\"edge\" id=\"edge3\"><title>2198369208416-&gt;2198369208752</title>\n",
       "<path d=\"M192,-498.366C192,-490.152 192,-480.658 192,-471.725\" fill=\"none\" stroke=\"black\"/>\n",
       "<polygon fill=\"black\" points=\"195.5,-471.607 192,-461.607 188.5,-471.607 195.5,-471.607\" stroke=\"black\"/>\n",
       "</g>\n",
       "<!-- 2198369209032 -->\n",
       "<g class=\"node\" id=\"node5\"><title>2198369209032</title>\n",
       "<polygon fill=\"none\" points=\"39.5,-332.5 39.5,-378.5 344.5,-378.5 344.5,-332.5 39.5,-332.5\" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"104.5\" y=\"-351.8\">dropout_1: Dropout</text>\n",
       "<polyline fill=\"none\" points=\"169.5,-332.5 169.5,-378.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"197.5\" y=\"-363.3\">input:</text>\n",
       "<polyline fill=\"none\" points=\"169.5,-355.5 225.5,-355.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"197.5\" y=\"-340.3\">output:</text>\n",
       "<polyline fill=\"none\" points=\"225.5,-332.5 225.5,-378.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"285\" y=\"-363.3\">(None, 14, 14, 64)</text>\n",
       "<polyline fill=\"none\" points=\"225.5,-355.5 344.5,-355.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"285\" y=\"-340.3\">(None, 14, 14, 64)</text>\n",
       "</g>\n",
       "<!-- 2198369208752&#45;&gt;2198369209032 -->\n",
       "<g class=\"edge\" id=\"edge4\"><title>2198369208752-&gt;2198369209032</title>\n",
       "<path d=\"M192,-415.366C192,-407.152 192,-397.658 192,-388.725\" fill=\"none\" stroke=\"black\"/>\n",
       "<polygon fill=\"black\" points=\"195.5,-388.607 192,-378.607 188.5,-388.607 195.5,-388.607\" stroke=\"black\"/>\n",
       "</g>\n",
       "<!-- 2198369397168 -->\n",
       "<g class=\"node\" id=\"node6\"><title>2198369397168</title>\n",
       "<polygon fill=\"none\" points=\"50,-249.5 50,-295.5 334,-295.5 334,-249.5 50,-249.5\" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"104.5\" y=\"-268.8\">flatten_1: Flatten</text>\n",
       "<polyline fill=\"none\" points=\"159,-249.5 159,-295.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"187\" y=\"-280.3\">input:</text>\n",
       "<polyline fill=\"none\" points=\"159,-272.5 215,-272.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"187\" y=\"-257.3\">output:</text>\n",
       "<polyline fill=\"none\" points=\"215,-249.5 215,-295.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"274.5\" y=\"-280.3\">(None, 14, 14, 64)</text>\n",
       "<polyline fill=\"none\" points=\"215,-272.5 334,-272.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"274.5\" y=\"-257.3\">(None, 12544)</text>\n",
       "</g>\n",
       "<!-- 2198369209032&#45;&gt;2198369397168 -->\n",
       "<g class=\"edge\" id=\"edge5\"><title>2198369209032-&gt;2198369397168</title>\n",
       "<path d=\"M192,-332.366C192,-324.152 192,-314.658 192,-305.725\" fill=\"none\" stroke=\"black\"/>\n",
       "<polygon fill=\"black\" points=\"195.5,-305.607 192,-295.607 188.5,-305.607 195.5,-305.607\" stroke=\"black\"/>\n",
       "</g>\n",
       "<!-- 2198369441832 -->\n",
       "<g class=\"node\" id=\"node7\"><title>2198369441832</title>\n",
       "<polygon fill=\"none\" points=\"63.5,-166.5 63.5,-212.5 320.5,-212.5 320.5,-166.5 63.5,-166.5\" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"115.5\" y=\"-185.8\">dense_1: Dense</text>\n",
       "<polyline fill=\"none\" points=\"167.5,-166.5 167.5,-212.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"195.5\" y=\"-197.3\">input:</text>\n",
       "<polyline fill=\"none\" points=\"167.5,-189.5 223.5,-189.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"195.5\" y=\"-174.3\">output:</text>\n",
       "<polyline fill=\"none\" points=\"223.5,-166.5 223.5,-212.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"272\" y=\"-197.3\">(None, 12544)</text>\n",
       "<polyline fill=\"none\" points=\"223.5,-189.5 320.5,-189.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"272\" y=\"-174.3\">(None, 128)</text>\n",
       "</g>\n",
       "<!-- 2198369397168&#45;&gt;2198369441832 -->\n",
       "<g class=\"edge\" id=\"edge6\"><title>2198369397168-&gt;2198369441832</title>\n",
       "<path d=\"M192,-249.366C192,-241.152 192,-231.658 192,-222.725\" fill=\"none\" stroke=\"black\"/>\n",
       "<polygon fill=\"black\" points=\"195.5,-222.607 192,-212.607 188.5,-222.607 195.5,-222.607\" stroke=\"black\"/>\n",
       "</g>\n",
       "<!-- 2198369439872 -->\n",
       "<g class=\"node\" id=\"node8\"><title>2198369439872</title>\n",
       "<polygon fill=\"none\" points=\"57.5,-83.5 57.5,-129.5 326.5,-129.5 326.5,-83.5 57.5,-83.5\" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.5\" y=\"-102.8\">dropout_2: Dropout</text>\n",
       "<polyline fill=\"none\" points=\"187.5,-83.5 187.5,-129.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"215.5\" y=\"-114.3\">input:</text>\n",
       "<polyline fill=\"none\" points=\"187.5,-106.5 243.5,-106.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"215.5\" y=\"-91.3\">output:</text>\n",
       "<polyline fill=\"none\" points=\"243.5,-83.5 243.5,-129.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"285\" y=\"-114.3\">(None, 128)</text>\n",
       "<polyline fill=\"none\" points=\"243.5,-106.5 326.5,-106.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"285\" y=\"-91.3\">(None, 128)</text>\n",
       "</g>\n",
       "<!-- 2198369441832&#45;&gt;2198369439872 -->\n",
       "<g class=\"edge\" id=\"edge7\"><title>2198369441832-&gt;2198369439872</title>\n",
       "<path d=\"M192,-166.366C192,-158.152 192,-148.658 192,-139.725\" fill=\"none\" stroke=\"black\"/>\n",
       "<polygon fill=\"black\" points=\"195.5,-139.607 192,-129.607 188.5,-139.607 195.5,-139.607\" stroke=\"black\"/>\n",
       "</g>\n",
       "<!-- 2198369736184 -->\n",
       "<g class=\"node\" id=\"node9\"><title>2198369736184</title>\n",
       "<polygon fill=\"none\" points=\"70.5,-0.5 70.5,-46.5 313.5,-46.5 313.5,-0.5 70.5,-0.5\" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"122.5\" y=\"-19.8\">dense_2: Dense</text>\n",
       "<polyline fill=\"none\" points=\"174.5,-0.5 174.5,-46.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"202.5\" y=\"-31.3\">input:</text>\n",
       "<polyline fill=\"none\" points=\"174.5,-23.5 230.5,-23.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"202.5\" y=\"-8.3\">output:</text>\n",
       "<polyline fill=\"none\" points=\"230.5,-0.5 230.5,-46.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"272\" y=\"-31.3\">(None, 128)</text>\n",
       "<polyline fill=\"none\" points=\"230.5,-23.5 313.5,-23.5 \" stroke=\"black\"/>\n",
       "<text font-family=\"Times New Roman,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"272\" y=\"-8.3\">(None, 10)</text>\n",
       "</g>\n",
       "<!-- 2198369439872&#45;&gt;2198369736184 -->\n",
       "<g class=\"edge\" id=\"edge8\"><title>2198369439872-&gt;2198369736184</title>\n",
       "<path d=\"M192,-83.3664C192,-75.1516 192,-65.6579 192,-56.7252\" fill=\"none\" stroke=\"black\"/>\n",
       "<polygon fill=\"black\" points=\"195.5,-56.6068 192,-46.6068 188.5,-56.6069 195.5,-56.6068\" stroke=\"black\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from IPython.display import SVG\n",
    "from keras.utils.vis_utils import model_to_dot\n",
    "\n",
    "SVG(model_to_dot(model, show_shapes=True, \n",
    "                 show_layer_names=True, rankdir='TB').create(prog='dot', format='svg'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compile the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model.compile(loss=keras.losses.categorical_crossentropy,\n",
    "              optimizer=keras.optimizers.Adadelta(),\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train the classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "50000/50000 [==============================] - 256s - loss: 7.3118 - acc: 0.1798   \n",
      "Epoch 2/10\n",
      "50000/50000 [==============================] - 250s - loss: 1.7923 - acc: 0.3564   \n",
      "Epoch 3/10\n",
      "50000/50000 [==============================] - 252s - loss: 1.5781 - acc: 0.4383   \n",
      "Epoch 4/10\n",
      "50000/50000 [==============================] - 251s - loss: 1.4506 - acc: 0.4893   \n",
      "Epoch 5/10\n",
      "50000/50000 [==============================] - 252s - loss: 1.3528 - acc: 0.5215   \n",
      "Epoch 6/10\n",
      "50000/50000 [==============================] - 250s - loss: 1.2717 - acc: 0.5502   \n",
      "Epoch 7/10\n",
      "50000/50000 [==============================] - 252s - loss: 1.2059 - acc: 0.5770   \n",
      "Epoch 8/10\n",
      "50000/50000 [==============================] - 254s - loss: 1.1565 - acc: 0.5948   \n",
      "Epoch 9/10\n",
      "50000/50000 [==============================] - 251s - loss: 1.1019 - acc: 0.6163   \n",
      "Epoch 10/10\n",
      "50000/50000 [==============================] - 254s - loss: 1.0584 - acc: 0.6284   \n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<keras.callbacks.History at 0x1ffd98e05f8>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(x_train, y_train,\n",
    "          batch_size=batch_size,\n",
    "          epochs=epochs,\n",
    "          verbose=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Predict and test model performance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " 9984/10000 [============================>.] - ETA: 0s"
     ]
    }
   ],
   "source": [
    "score = model.evaluate(x_test, y_test, verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test loss: 1.10143025074\n",
      "Test accuracy: 0.6354\n"
     ]
    }
   ],
   "source": [
    "print('Test loss:', score[0])\n",
    "print('Test accuracy:', score[1])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# How CNN Classifies an Image? "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Prepare image for CNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "img_idx = 999"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x1ffd9c38f60>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nsf8HI8CoHFEIyF8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ffcf99d358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(x_test[img_idx],aspect='auto')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Image Label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.])"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_test[img_idx]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Predict the label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1, 32, 32, 3)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_image =np.expand_dims(x_test[img_idx], axis=0)\n",
    "test_image.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1/1 [==============================] - 0s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([8], dtype=int64)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.predict_classes(test_image,batch_size=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1/1 [==============================] - 0s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[  6.37772540e-03,   1.83971148e-04,   8.36352046e-06,\n",
       "          1.32570420e-07,   3.34822033e-07,   4.82157869e-09,\n",
       "          4.56026505e-08,   4.81511553e-10,   9.93404567e-01,\n",
       "          2.48477136e-05]], dtype=float32)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.predict_proba(test_image,batch_size=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Utility Methods to understand CNN\n",
    "+ source: https://github.com/fchollet/keras/issues/431\n",
    "+ source: https://github.com/philipperemy/keras-visualize-activations/blob/master/read_activations.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# https://github.com/fchollet/keras/issues/431\n",
    "def get_activations(model, model_inputs, print_shape_only=True, layer_name=None):\n",
    "    import keras.backend as K\n",
    "    print('----- activations -----')\n",
    "    activations = []\n",
    "    inp = model.input\n",
    "\n",
    "    model_multi_inputs_cond = True\n",
    "    if not isinstance(inp, list):\n",
    "        # only one input! let's wrap it in a list.\n",
    "        inp = [inp]\n",
    "        model_multi_inputs_cond = False\n",
    "\n",
    "    outputs = [layer.output for layer in model.layers if\n",
    "               layer.name == layer_name or layer_name is None]  # all layer outputs\n",
    "\n",
    "    funcs = [K.function(inp + [K.learning_phase()], [out]) for out in outputs]  # evaluation functions\n",
    "\n",
    "    if model_multi_inputs_cond:\n",
    "        list_inputs = []\n",
    "        list_inputs.extend(model_inputs)\n",
    "        list_inputs.append(1.)\n",
    "    else:\n",
    "        list_inputs = [model_inputs, 1.]\n",
    "\n",
    "    # Learning phase. 1 = Test mode (no dropout or batch normalization)\n",
    "    # layer_outputs = [func([model_inputs, 1.])[0] for func in funcs]\n",
    "    layer_outputs = [func(list_inputs)[0] for func in funcs]\n",
    "    for layer_activations in layer_outputs:\n",
    "        activations.append(layer_activations)\n",
    "        if print_shape_only:\n",
    "            print(layer_activations.shape)\n",
    "        else:\n",
    "            print(layer_activations)\n",
    "    return activations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# https://github.com/philipperemy/keras-visualize-activations/blob/master/read_activations.py\n",
    "def display_activations(activation_maps):\n",
    "    import numpy as np\n",
    "    import matplotlib.pyplot as plt\n",
    "    \"\"\"\n",
    "    (1, 26, 26, 32)\n",
    "    (1, 24, 24, 64)\n",
    "    (1, 12, 12, 64)\n",
    "    (1, 12, 12, 64)\n",
    "    (1, 9216)\n",
    "    (1, 128)\n",
    "    (1, 128)\n",
    "    (1, 10)\n",
    "    \"\"\"\n",
    "    batch_size = activation_maps[0].shape[0]\n",
    "    assert batch_size == 1, 'One image at a time to visualize.'\n",
    "    for i, activation_map in enumerate(activation_maps):\n",
    "        print('Displaying activation map {}'.format(i))\n",
    "        shape = activation_map.shape\n",
    "        if len(shape) == 4:\n",
    "            activations = np.hstack(np.transpose(activation_map[0], (2, 0, 1)))\n",
    "        elif len(shape) == 2:\n",
    "            # try to make it square as much as possible. we can skip some activations.\n",
    "            activations = activation_map[0]\n",
    "            num_activations = len(activations)\n",
    "            if num_activations > 1024:  # too hard to display it on the screen.\n",
    "                square_param = int(np.floor(np.sqrt(num_activations)))\n",
    "                activations = activations[0: square_param * square_param]\n",
    "                activations = np.reshape(activations, (square_param, square_param))\n",
    "            else:\n",
    "                activations = np.expand_dims(activations, axis=0)\n",
    "        else:\n",
    "            raise Exception('len(shape) = 3 has not been implemented.')\n",
    "        #plt.imshow(activations, interpolation='None', cmap='binary')\n",
    "        fig, ax = plt.subplots(figsize=(18, 12))\n",
    "        ax.imshow(activations, interpolation='None', cmap='binary')\n",
    "        plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "----- activations -----\n",
      "(1, 30, 30, 32)\n",
      "(1, 28, 28, 64)\n",
      "(1, 14, 14, 64)\n",
      "(1, 14, 14, 64)\n",
      "(1, 12544)\n",
      "(1, 128)\n",
      "(1, 128)\n",
      "(1, 10)\n"
     ]
    }
   ],
   "source": [
    "activations = get_activations(model, test_image)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Displaying activation map 0\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ffcf99d2b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Displaying activation map 1\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ffda3798d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Displaying activation map 2\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABBcAAAA4CAYAAACmCRDBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAE8tJREFUeJzt3Xt01OWdx/H3N4aEkJQQQCgQMBCuijcuSrVqtWuLVGnZ\n7eLuOSqt3XppT8/pUdvTi93t9qKtaF3dXddLa23lsD3rYuEsCopcjeCxBLyEW7glEHIjEMiVZJI8\n+8dvZjoZAgRmkvlN8nmd8xwyz++Z3++Z+ZLMb76/53l+5pxDRERERERERORCpSS6AyIiIiIiIiKS\n3JRcEBEREREREZGYKLkgIiIiIiIiIjFRckFEREREREREYqLkgoiIiIiIiIjERMkFEREREREREYmJ\nkgsiIiIiIiIiEpO4JRfMbJ6ZfWhmLWZWYmYPxWvfIiIiIiIiIuJfcUkumNksYAWwCrgK+CnwmJk9\nEI/9i4iIiIiIiIh/mXMu9p2YLQXynHPXRdQtBv7eOZcX8wFERERERERExLfiNS3iemB1VN1q4BIz\ny43TMURERERERETEh1LjtJ9RQGVUXWXEtrIzPXH48OEuLy8vTt0QERERERERkXgpLCyscc5dfK52\n8UounBczuw+4D2DcuHFs3bo1Ed0QERERERERkbMws9LutIvXtIgK4NNRdSMjtnXinHvROTfLOTfr\n4ovPmQARERERERERER+LV3LhPeCLUXVzgVLn3BmnREjsdu3aleguiJyX8vJyysvLE90NEREREZF+\no62tjba2th49RrySC08D15jZL81sqpktAr4D/CpO+xcRERERERERn4pLcsE59xfgK8DtwEfAz4Af\nO+eej8f+pWtVVVVMmzYt0d1IOqtWrQJg586dCe5J/1NUVMTo0aMZPXp0rx+7qqqq148pIiIiIhIP\n5eXlF/z9Ze/evVRVVVFVVcX69evj3LO/itfIBZxzbzjnrnTOpTvnLnHO/SZe+5aujRw5MvxzY2Mj\npaXdWmej3xsxYgQFBQVceumlp23TcP2edejQIY4ePcrRo0cBcM6dtr25ublTXXSbC1VYWBiX/VyI\nyspKAoFAwo4fsnfv3kR3QURE+qDnnnsu0V2QBPLDOU5/sHLlSnbs2EFDQwMNDQ188sknVFRU0Nra\nes7nPvroo4wZM4YxY8Zw8803A3DkyJG499G6c+JuZjcCDwNXAeOAnzjnfhHV5lq86REzgFrgFeBR\n51z72fY9a9Ysp7tFxM45h5kB8Pjjj/PDH/4wwT3yv927dzN16tROdUuXLuWOO+7gU5/6VIJ61X+s\nWrWKiRMnkpGRQXV1NTNmzAhvO3nyJACpqamUlZWRk5PDiBEj4nLcU6dOMXDgwPDjQ4cOAd6da5qa\nmhg0aFBcjhPpa1/7Gq+88kqnuurq6ri9pvO1bds2cnJyGD9+fEKOLyIifcPmzZu57rrrwo9ra2vZ\nvn07t9xySwJ7JdJ3nTx5kuXLl7N//35ycnJoaGggNzeXq666CoDLL7+c1NSz3xCyrq6OwYMHc+TI\nEcaMGcP27du5+uqrz/ocMyt0zs06V/+6O3IhC9gJfB+o7OJgY4E1wB5gJvAgcD/wy27uX2IUSiw0\nNjaellg4cOBA3I/3zjvvcP/997NhwwYqKk67IQgAx48fj/tx4+GZZ57hySefZMiQIZ3qP/zwQyor\nK8OJhZUrV1JaWkpDQ0Pcjt0bC6kki9tuu41JkyaRm5vLjh07WLFiBevWrQMgOzub7OxsMjMzmTJl\nCikpsQ+yevbZZwHCiYWmpiYKCgoYN24c48aNA7zM+9q1a+Mac4AXXnjhtLpEJRYAZsyYocSC+FZl\n5WmnGf1SaWkppaWlrFu3jpKSkh4/3ooVK1ixYkWPH0f8p6ioiMOHD1/QczMyMjo9zsnJ6ZRYeOCB\nB+L+mSrSn4XOjz/55BPmz5/Pvffey8KFC8nMzCQzM5M33niD5cuXs3z58k7Pe+2118I/Dx48GPDO\ne3ft2tUpsVBUVERRUdEF969bIxc6PcGsBPht5MgFM3sMuAcY55zrCNZ9G3gCGOGcazzT/mIZudDQ\n0EBWVtYFPbe/CWWmwEtAZGZmxrzPuro6vvvd73LkyBHuvvtuACZOnMicOXNi3ndPq6ioYNmyZeGp\nEaNGjWLatGm0tLTw5ptv0tHRwbx588jIyKCsrCz8Sxj6t786efIk2dnZF/TcDRs2UFVVxZ133nnG\nNkuWLCEQCDBhwgQAbrrpJqDzyJwL1dDQQH19PVlZWV2OTGltbSUtLS2mY/hZIBBgwIABie6G9CPb\ntm2jvb2diRMnkpOT0+3n9dQIomS2bt06hgwZQk1NDV/4whd65Bjbtm0DvPe/rq6OefPm9chx/Cx0\nUeTAgQPMmnXOC3R91scff8wVV1zRrbbHjh0jOzub1NRUjh07xrBhw7pst3LlSm644QZ27tzJiRMn\nuO222+LZZZF+Y+XKlZ1GKowbN4677ror/Lv38MMPA955d05ODkOHDqW9vZ3i4uLwKOHhw4eH99fR\n0cGpU6cATvvsDX1nPHXqFBkZGd0auRCv5MJGYL9z7t6IunxgH3CDc67gTPuLTC4cOHAg/OUt8kWf\niU6WL0xBQQGf/exn47a/uro6nnjiCQC2bNlCRkYGCxYs4Bvf+EZc9n/48GHGjh0LxC8xElJXVwfA\nyy+/zOjRo1m4cGGn7efzAStnt3HjRvbs2RN+nJube8aT19DcsbVr1xIIBGhvb2fBggVx68vhw4dp\nbm5m8uTJcdunSF9RW1t7XsmAsykqKgoPvxwxYkRCR+z0BQcPHqSqqoqMjAzy8/N77ALL5s2baW9v\nJxAI9Mvh7UePHqWhoYGLLrooPLJN4MSJE6eN+oxWVFREdnZ2+LwtWmtrKx988EFcz0Mleezfv5/8\n/PxEdyOptba2snTpUsyMvLy88IW40Od2Wloa1dXVPPLIIyxevBiAjz76iCuvvDK8j8rKSqqrq5ky\nZQrp6enh+oMHD4ZHtoa+f4WmPnV3WkS8kgvFwP86534UUZcJNAALnXOvnbajoDONXNi1axf19fVc\nc80159U/SayXXnqJNWvW0NLSQnV1NQ8++CD33HNPorvVbdu2baOsrIz58+cnuit9zp49e0hPTw+v\ncVBcXExmZiazZ89m2LBhcfsy0127d+8mEAiEE5mjRo3q1eNH62okVltb2znnzfWkNWvWcOuttybs\n+NJ37Ny5k4EDB7J7925SU1N77Op7f1JaWkpNTQ0zZ87ssWO8/vrrlJWVMXnyZObOndtjx/GrJUuW\nMGTIEG6//fZEd6VLZxspkEjV1dXhRZSnT59+xkSDiFy4pqYmli1bRnNzM1OnTuXGG28Mb9u0aRMv\nvvhi+Px6/PjxLFq06LR9lJSUcOLEifAoiEivvvoqX/7ylxk8eDC7d+9m2rRpcV1zIa7M7D4z22pm\nW0OrxouIiIiIiIhIcurJaRETgP2cx7SIaHv37qWmpgYzS4p5/PJXTz/9NO+++y6zZs2io6ODlJSU\n8HSG/Px8314FANi3bx85OTnU19eTl5eX6O4knePHjzN06NAu69PS0ti3bx/gzes6ePAgLS0tBAIB\n0tLSuPzyy3v9PQ8lOC+++OJePW6itba2kpKSEi5defvtt3WFWeKqsLCQ9PT08G1/Z8+eTVZWlqY4\n+tzGjRt5//33w7cv62+jShsbGykvL2fSpEmJ7krSaWlpoaWlhdWrVzNnzhyysrK6PEcQkQvz1ltv\nUVxcHF6b7Nprr2X27Nndfn5xcTFpaWkMGjTojFMX//jHP7Jo0aJenRbxGHA3cEnEgo7fAhYThwUd\nQ/O3UlNTOw1d7s7cL0ms1tZWVq9eTW1tLZdddhkA9fX14RMU6XtKSkrIyMhg5MiRneorKirIysqi\nsdH7c1BbW0tTUxNmRlVVFfX19TQ2Noa3g3c7HedcePqExF9lZWV4jYvq6upOi5ht3bq1Xy9qFovC\nwsIeHa6e7Do6OgBvOtDWrVu59NJLKSkp0YUEn9uyZQsAw4YN05o1cl7Wr1/PzJkz2bRpE8OHDyc/\nP7/fJfUltoXB5cyam5vZvHkz4K1JWFxczIQJE8jLy2PMmDE0NjaSm5t71n0cP36c1NTULhevLy0t\nJS8vL37JBTPLAiYGH74JvA78Fmhwzu0L3opyB/Aa8BsgH/g98JJz7gdn23csd4uQ89fXV8QX/2ps\nbMQ5RyAQALy5om1tbXR0dHT6sKmqqgrfdq25uZn09HQGDBiQVGt3JJvQwqaBQKDT/N14L/7anxQV\nFTF9+vREd0NExDfa2tooLS3Vgn4iF6ilpaXTAoxdqampoaCggJKSErKzsxkwYACZmZndWhg9NNo8\nWllZGWPHjo1rcuFzwPouNm10zn0u2GYOXmJhBnACL7nwqHOu/Rz7Pgo0AjXn7Ij41XAUv2Sm+CU3\nxS+5KX7JTzFMbopfclP8kpvilzwucc6dc7jReU+L6AlmtrU7mRDxJ8UvuSl+yU3xS26KX/JTDJOb\n4pfcFL/kpvj1PQm5W4SIiIiIiIiI9B1KLoiIiIiIiIhITPySXHgx0R2QmCh+yU3xS26KX3JT/JKf\nYpjcFL/kpvglN8Wvj/HFmgsiIiIiIiIikrz8MnJBRERERERERJKUkgsiIiIiIiIiEpOEJRfMbJ6Z\nfWhmLWZWYmYPJaov0pmZ3WhmK8ys1MycmT3aRZtrzWyzmZ0yswoze9zMLopqM9nM3jKzJjOrMbPn\nzSyz915J/2Rm3zOzLWZWa2YnzKzAzOZ20U4x9CEzu9vMCoPxazazXWb2kJlZRBvFLgmY2S1m1m5m\n+6LqFT+fMrOfBj/3osvEiDaKn4+Z2XAz+y8zKw+eYx40s29GtVEMfSj4faCr378dEW0UO58ysxQz\n+2cz2xc8fzlkZs9Gv/eKYd+WmoiDmtksYAXwJPCPwLXA82bW5Jx7PhF9kk6ygJ3AUuDfojea2Vhg\nDbAM+CYwCXgZMOAHwTZZwFrgY+A6YGiwzRDgH3r8FfRvt+C9138BmoB/Alaa2U3OufdAMfS5auDn\nwB6gBbgBeA5oB55R7JKDmX0a+APwNl6MQvWKn/+VAJ+JqjsKip/fBd/7TcARvPPLUmAUcFFEG8XQ\nv2YTESu889GPgT+BYpcEHgYeAb4OFAJT8N77dOB+UAz7Bedcrxe8L62bo+oWAyWJ6I/KWWNVAjwa\nVfcYUAakRNR9G2gEMoOP7wOageyINl8CHDA+0a+rvxW8P9BPKYbJWYA/A39W7JKj4I0KfAfvROmn\nwL6IbYqfj0t0vLrYrvj5uAD/GjxvSVcMk7/gffkMAKMUO/8XYDmwLKruKWB7xGPFsI+XRE2LuB5Y\nHVW3GrjEzHIT0B85P9cDbzvnOiLqVgODgKsj2mxxzp2MaPM20BHcJr3EzFKAwXh/uEMUwyRgnmvw\n3u/1wWrFzv9+gncS9Osutil+/pdrZmXBssrMrovYpvj5298BBcDTweHWu81ssZkNimijGCaP+4H/\nc85VBB8rdv5WAFxvZlcAmNkEYB7wRkQbxbCPS1RyYRRQGVVXGbFN/K078TutjXMuABxHMe5tP8Ib\nShZ5L2HF0MfMLNvMGvCmRWwG/t0592xws2LnY2Z2M/AAcLcLXm6Jovj52wd4Q3q/hDes/hjwrpnd\nGtyu+PlbPvBVvIT6HcD3gTuBlyLaKIZJIDiFeibwQkS1YudvTwH/AWwzswCwH3gXL+Eeohj2cQlZ\nc0FEeoeZfQsvuTDfOVeW6P5It9UDV+Fl8q8DHjezcufc7xLbLTkbMxsOLAG+7pyLPnmSJOCcezOq\n6t3giMrv4c0TFn9LwUsIfT34ZQQzSwNeM7PvOOeOJ7R3cj7uBw7iXbGW5PBV4Ft4CdoP8dZceBr4\nBfDjBPZLelGikgsVwKej6kZGbBN/6078KoCxkQ3MbADeoiyKcS8ws0fw5p/Od869E7VZMfSx4HDB\n0B0GPjazHOCXwO9Q7PxsOjAabwHVUF0K3gyXNuAeFL9k9D7wt8GfFT9/q8BbvysQURe608AleFc+\nFUOfM7PBeCOHfhE1Akyx87engGedc68GH39iZhnAy2b2c+fcKRTDPi9R0yLeA74YVTcXKNXV1aTw\nHnBrcC5/yFy8OxNsj2jzmeAHRMiteP/n3uuVXvZjZvYz4F+AeV0kFkAxTDYpwMDgz4qdf/0FuBxv\n1EmoPA8cDv78BopfMpqBF0NQ/PzuXWCimUVePJsS/Lck+K9i6H93AWnA76PqFTt/ywTaoura8e4E\nEcq4K4Z9XSJWkcS71UwA70rcVGAR3qqgDyR6hUsVB96tf0InxuV486euAiYGt48F6vCuol4GzMcb\nhvirqH0cBlYCVwI34w1v+1OiX19fL3i3D20GvoKXHQ6VyFV3FUOfFrzRJn8DTMA7Kf5mMFbPKHbJ\nVzj9bhGKn48L8Bu82/lOCH7u/SfeImJ3KH7+L8H3uwVvjaGpwfd+H/CHiDaKoc8L8BHwP13UK3Y+\nLsG4VAELgDy8C8kH8BblVAz7SUncgb3Fkj4KfgiUAg8l+s1QCcfmc3grnUeXDRFt5uAtNHcKb9GV\nx4GLovYzBW+uXFPwD8cLBG8zo9Kj8esqdg54JaqdYujDgjc/cR9egqgW717R346MjWKXPIUubm2o\n+Pm3AP+Nd5u0FqAa75aityh+yVOAz+ONIjqFN1phMTBIMUyOEoyNAz5/lu2KnQ8L3siFxXgJhVPA\nIeA5YKhi2H+KBQMoIiIiIiIiInJBErXmgoiIiIiIiIj0EUouiIiIiIiIiEhMlFwQERERERERkZgo\nuSAiIiIiIiIiMVFyQURERERERERiouSCiIiIiIiIiMREyQURERERERERiYmSCyIiIiIiIiISEyUX\nRERERERERCQm/w+x888i85WzigAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ffda3a8c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Displaying activation map 3\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABBcAAAA4CAYAAACmCRDBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEnxJREFUeJzt3Xl0VGWax/HvgyEIQUIARfaIbDKiIIzaaLv1aANtYzPT\nE0cPisuIa5+j9mIfm55xuhVbbUUdhnHpBZWjfXRawYkgIouKwTOyuIRFQE0ghCQIgWwQE3jnj1tV\nXSkCJFQl997k9znnPUm9961739STpG49933fa845RERERERERESOVwe/OyAiIiIiIiIi4abkgoiI\niIiIiIgkRckFEREREREREUmKkgsiIiIiIiIikhQlF0REREREREQkKUouiIiIiIiIiEhSlFwQERER\nERERkaSkLLlgZpPM7BMzqzWzAjO7N1X7FhEREREREZHgSklywczGAQuARcBo4AFgppndlor9i4iI\niIiIiEhwmXMu+Z2YvQxkO+fGx9U9Bvyzcy476QOIiIiIiIiISGClalrEBcDbCXVvA4PMrH+KjiEi\nIiIiIiIiAZSWov30AUoS6krithUd6Ym9evVy2dnZKeqGiIiIiIiIiKTKmjVrvnHOnXysdqlKLjSL\nmU0HpgMMHDiQ1atX+9ENERERERERETkKMytsSrtUTYvYCZyaUNc7blsDzrnnnHPjnHPjTj75mAkQ\nEREREREREQmwVCUXPgS+n1A3ASh0zh1xSoSItD/FxcUUFxf73Q0RERERkXajvr6e+vr6Fj1GqpIL\ns4BzzewhMxthZtOAnwC/S9H+RURERERERCSgUpJccM59DPwIuBL4FPgN8Cvn3DOp2L80rrS01O8u\nhNKiRYsA2LBhg889aZ/69u1L3759/e6GiIiIiEhoFBcXH/fnly1btlBaWkppaSnLly9Pcc/+JlUj\nF3DOveWcO9s518k5N8g590Sq9i2N6927d+z76upqCgubtM5Gu3fKKacAMHLkSJ970v4sXLiQXbt2\nsWvXLgCccw22b9u2jf379zeoS2yTzLH9UlJSQl1dnW/Hj9qyZYvfXRARkTZozpw5fndBfBSEc5z2\nIDc3l/Xr11NVVUVVVRWff/45O3fu5Ntvvz3mc2fMmEG/fv3o168fl156KQA7duxIeR+tKSfuZnYR\n8FNgNDAQ+LVz7sGENufhTY84BygH5gIznHMHj7bvcePGOd0tInnOOczM726EyqZNmxgxYkSDupdf\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ffd9c2df28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Displaying activation map 4\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nVEUBBgCgKgowAABVUYABAKiKLRBM6b777mvNt99++44nAWBzrV27tjVfuHBhx5PAzOn1ehkZGbEF\nAgAAxlMfbua7AAAQPklEQVSAAQCoigIMAEBVFGAAAKqiAAMAUJV5gx6A2cu2B4C5w7aHwfjBD37Q\nmu+///4dT8J4rgADAFAVBRgAgKoowAAAVEUBBgCgKgowAABVsQUCAGCG2PYwO7kCDABAVRRgAACq\nogADAFAVBRgAgKoowAAAVGVotkD8/Oc/zxe/+MVJ+amnntr5LOvXr2/Nt9pqq44nAdr88z//c2u+\n9957t+allNZ8v/3269tM/Eef+9znWvNXvepVrfnq1atb8yVLlmz2LI899lhrPm/e0Pxf5LRcc801\nrfnhhx/e8SRTu+KKK1rzY489tuNJmE0++tGPtua/8iu/MimbqqNN5AowAABVUYABAKiKAgwAQFUU\nYAAAqlKaphn0DNNy0EEHNRdeeOGk/MgjjxzANO0+9KEPtea/93u/N+3XuOWWW1rzfffd90nNtDn+\n8R//sTVvu+kchtkjjzzSmm+99dYdTzL33H333a35jjvu2PEkm+6Vr3xla/75z39+2q9x7733tuZP\ne9rTntRM03XfffdNytasWdN67NKlS2d0Fma/f/3Xf52UPe95z+vLa//whz9szWfqIeNer5eRkZH2\nJ5vHcQUYAICqKMAAAFRFAQYAoCoKMAAAVVGAAQCoytBsgTj00EObto9IXLRo0QCmYa5ZuXLlpMyT\n0fW4//77W/Ptttuu40nq8ZnPfKY1P+200zqehNnkve99b2t+9tlndzwJw8oWCAAAaKEAAwBQFQUY\nAICqKMAAAFRFAQYAoCpDswXi8MMPb66++upJ+ZZbbjmAaaBef/Znf9aa/+Ef/mHHkwCb4r777mvN\nt99++44ngZljCwQAALRQgAEAqIoCDABAVRRgAACqogADAFCVeYMeYLpKKTY+wCxg28NgLFu2bFJ2\nyimnDGCSuWf58uWt+QknnNDxJDPLtgf4d64AAwBQFQUYAICqKMAAAFRFAQYAoCoKMAAAVRmaLRB0\nb9WqVa35Lrvs0vEkgI0PM2eubXuYyi9+8YvW/KlPfWrHk8DguQIMAEBVFGAAAKqiAAMAUBUFGACA\nqijAAABUxRYIpmTbA8DcYdvDYNx8882t+UEHHdTxJIznCjAAAFVRgAEAqIoCDABAVRRgAACq4iE4\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ffda3ecda0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Displaying activation map 5\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ffda73fd30>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Displaying activation map 6\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n/h8u81z+x825VgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ffda411630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Displaying activation map 7\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1ffda3805c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display_activations(activations)"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
